oracle双机热备 您所在的位置:网站首页 oracle 双机热备份 oracle双机热备

oracle双机热备

2024-06-30 12:15| 来源: 网络整理| 查看: 265

假定主库与备用库不在同一个主机上,目录结构相同,并且配置一个自管理备用库(managed standby database):        主库        备库主机IP        192.168.1.20        192.168.1.30主机名        PrimDB        StbyDBSID        Orcl        Orcl数据库服务名        Orcl        Orcl一 创建一个主库的数据文件备份:用冷备份方式,备份到e:\shared\back二 创建备用库的控制文件:冷备份之后,打开主库SQL> connect internal/oracle as sysdba;SQL>startup pfile=d:\oracle\admin\orcl\init.ora;SQL>alter database create standby controlfile as ‘e:\shared\back\stby_ctl.ctl’;三 通过网络复制备份的数据文件和备用控制文件到备库主机四 配置主库的tnsnames.ora文件,添加备库别名为stby1,即下面内容:stby1=(description=                (address=                  (protocol=tcp)                  (port=1523)                  (host=192.168.1.30))                (connect_data=                  (SID=orcl)))五 配置备用库的listener.ora文件,添加监听服务standby_listener,在相应的节里添加有关的内容。如果原文件内已有,则修改之。standby_listener节:(address_list=                  (address=                        (protocol=tcp)                        (port=1523)                        (host=192.168.1.30)                 ) )SID_list_standby_listener节:                (sid_list=                  (sid_desc=                        (sid_name=orcl)                        (oracle_home=d:\oracle\ora81)                ) )这个文件中只能有这两节,不能有多个组,虽然可以定义监听的名字不同,但在启动监听服务的时候,都只启动一个监听服务。六 重新启动备库监听服务,以使更改生效:DOS>lsnrctl                                # 启动监听服务管理程序LSNRCTL>status                # 查看监听服务状态LSNRCTL>stop                        # 停止监听服务LSNRCTL>start                        # 启动监听服务也可以在管理工具的服务管理里停止和启动服务。七 配置主库的初始化参数文件init.ora,修改归档目的地。本地归档只归档到一个目录e:\log。添加以下内容:# 定义本地归档路径,强制归档,重试时间2秒log_archive_dest_1 = “location=e:\log\ mandatory reopen=2”log_archive_dest_state_1 = enable# 定义归档到备用库,强制归档,重试时间15秒。# 如果定义为可选状态(optional),那么在归档失败后不会再次尝试归档的。定义# 为madatory状态后,如果本次归档失败,则在归档下一个日志时会再次尝试# 重传上一个未成功归档的日志。log_archive_dest_2 = “service=stby1 mandatory reopen=15”log_archive_dest_2 = enable# 定义必须成功归档的日志数,只需要本地成功归档即可log_archive_min_succeed_dest = 1八 使主库修改后的参数生效。以下操作是在未重启主库时使用。如果修改主库初始化参数文件后重新启动了主库,则可以不使用下列命令。下列命令只对当前实例有效。SQL>alter system set log_archive_dest_1 = “location=e:\log mandatory reopen=2”;SQL>alter system set log_archive_dest_state_1 = enabl;SQL>alter system set log_archive_dest_2 = “service=stby1 mandatory reopen=30”;SQL>alter system set log_archive_dest_2 = enable;SQL>alter system set log_archive_min_succeed_dest = 1;九 配置备用库的初始化参数文件:将主库的初始化参数文件复制到备库,删除原有的日志归档目录项,并添加以下内容:log_archive_dest = e:\loglog_archive_trace = 6                #定义日志跟踪层次standby_archive_dest = e:\log# 更改控制文件名control_files = (“d:\oracle\oradata\orcl\stby_ctl.ctl”)十 启动备用库将从主库复制过来的数据文件、控制文件复制到相应的位置,然后在备库上操作(此时备库处于关闭状态):SQL>connect internal/oracle as sysdbaSQL>startup nomountSQL>alter database mount standby database十一  如果有日志序列的缺失,则先将主库的日志复制到备库日志目录,进行手工恢复SQL>recover automatic standby database;或者:SQL>recover standby database until cancel;查看日志序列是否有缺失的SQL语句:SQL>SELECT high.thread#, "LowGap#", "HighGap#"FROM(SELECT thread#, MIN(sequence#)-1 "HighGap#"FROM(        SELECT a.thread#, a.sequence#FROMv$archived_log a,(        SELECT thread#, MAX(next_change#) gap1FROM v$log_historyGROUP BY thread#) bWHERE a.thread# = b.thread#AND a.next_change# > b.gap1)GROUP BY thread#) high,(SELECT thread#, MIN(sequence#) "LowGap#"FROM(        SELECT thread#, sequence#FROM v$log_history, v$datafileWHERE checkpoint_change# = first_change#)GROUP BY thread#) lowWHERE low.thread# = high.thread# ;如果备库有日志序列缺失,则同一个thread#的LowGap# 与 HighGap# 不等。如果没有日志序列缺失,那么选出空值或者是LowGap# 与 HighGap# 相同。十二 将备库置于自管理模式SQL>recover managed standby database;此时,SQLPLUS窗口停止响应,直到取消备库自管理模式。要取消备库的自管理模式的命令:SQL>recover managed standby database cancel;



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有